/**   
 * Copyright © 2016 公司名. All rights reserved.
 * 
 * @Title: UserLoginLogServiceImpl.java 
 * @Prject: LianniuManager
 * @Package: com.lianniu.mgr.baseService.userLog.service.impl
 * @Description: TODO
 * @author: lzz   
 * @date: 2016年8月4日 下午3:17:40 
 * @version: V1.0   
 */
package com.lianniu.mgr.baseService.userLoginLog.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSON;
import com.lianniu.mgr.base.BaseResult;
import com.lianniu.mgr.baseService.userLoginLog.dao.IUserLoginLogDao;
import com.lianniu.mgr.baseService.userLoginLog.model.UserLoginLogVo;
import com.lianniu.mgr.baseService.userLoginLog.service.IUserLoginLogService;
import com.lianniu.mgr.constants.ErrorCode;
import com.lianniu.mgr.pagination.PaginationInfo;
import com.lianniu.mgr.util.StringUtil;

/** 
 * @ClassName: UserLoginLogServiceImpl 
 * @Description: TODO
 * @author: lzz
 * @date: 2016年8月4日 下午3:17:40  
 */
@Service("userLoginLogService")
public class UserLoginLogServiceImpl implements IUserLoginLogService {
    private final static Logger logger = Logger.getLogger(UserLoginLogServiceImpl.class);
    
    @Resource
    private IUserLoginLogDao userLoginLogDao;

    @Override
    public BaseResult addUserLoginLog(UserLoginLogVo userLoginLogVo) {
        logger.info("addUserLoginLog begin.");
        logger.info("UserLoginLogVo:" + JSON.toJSONString(userLoginLogVo));
        logger.info("input data check begin.");
        BaseResult baseResult;
        if (userLoginLogVo.getUserId() ==0 || StringUtil.isEmpty(userLoginLogVo.getLoginIp())
            || StringUtil.isEmpty(userLoginLogVo.getAddUser())) {
          baseResult = BaseResult.fail(ErrorCode.ParaCheckErrorRetCode, ErrorCode.ParaCheckErrorRetInfo); 
          return baseResult;
        }
        logger.info("input data check end.");
        logger.info("addUserLoginLog addUserLoginLog begin.");
        baseResult = BaseResult.success(userLoginLogDao.addUserLoginLog(userLoginLogVo));
        logger.info("addUserLoginLog addUserLoginLog end.");
        logger.info("addUserLoginLog end.");
        return baseResult;
    }
    
    @Override
    public BaseResult getUserLoginLogList(UserLoginLogVo userLoginLogVo,PaginationInfo paginationInfo) {
        logger.info("getUserLoginLogList begin.");
        logger.info("getUserLoginLogList userLoginLogVo:"+JSON.toJSONString(userLoginLogVo));
        userLoginLogVo.setPaginationInfo(paginationInfo);
        logger.info("getUserLoginLogListForPage begin.");
        List<UserLoginLogVo> list = userLoginLogDao.getUserLoginLogListForPage(userLoginLogVo);
        logger.info("getUserLoginLogListForPage end.");
        Map<String, Object> retmap = new HashMap<String, Object>();
        retmap.put("total", paginationInfo.getTotalRecord());
        retmap.put("curPage", paginationInfo.getCurPage());
        retmap.put("rows", list);
        logger.info("getUserLoginLogList retmap:"+JSON.toJSONString(retmap));
        logger.info("getUserLoginLogList end.");
        return BaseResult.success(retmap);
    }

}
